/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladores;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import Conceptos.MuestraFisicoQuimica;
import Conceptos.Parametro;
import Conceptos.RmuestraFisicoQuimicas;
import MPersistencia.MPAuxiliar;
import MPersistencia.MPMuestraFisicoQuimca;
import MPersistencia.MPParametro;
import MPersistencia.MPPuntoMuestreo;
import java.io.Serializable;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

/**
 *
 * @author Hermanos
 */
@ManagedBean
@RequestScoped
public class controlMuestraFisicoQuimica implements Serializable {

    private static Date hora1 = new Date();
    private static MuestraFisicoQuimica selecmuestra;
    private static Date fecha = new Date();
    public static String auxiliar;
    private static String repeticion;
    public static String tipomuestra;
    private static String parametros = "01";
    public static String puntomuestreo;
    private static String jornada;
    private static String hora;
    private static String valor;
    private static boolean mostPanel;
    private static List<RmuestraFisicoQuimicas> listamuestra;
    private static List<Parametro> listaparametros;
    private static List<Parametro> listaparametrosinsitu;
    private static List<MuestraFisicoQuimica> listafiscoQuimica;
    private static List<MuestraFisicoQuimica> listafiscoQuimicaInsitu;
    private static List<MuestraFisicoQuimica> listafiscoQuimicaLaboratorio;
    private static List<MuestraFisicoQuimica> listafiscoQuimicaMicrobiologicos;
    static SimpleDateFormat formatohora = new SimpleDateFormat("HH:mm");
    static SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
    static String tipoparametro;

    /** Creates a new instance of controlMuestraFisicoQuimica */
    public controlMuestraFisicoQuimica() throws Exception {
        String fechamuestra = formato.format(fecha);
        listamuestra=MPMuestraFisicoQuimca.getMuestraFisicoQuimicaauxiliar(fechamuestra, auxiliar);
    }

    public static void cerrarSession() {
        hora1 = new Date();
        selecmuestra = null;
        fecha = new Date();
        auxiliar = null;
        repeticion = null;
        tipomuestra = null;
        parametros = "01";
        puntomuestreo = null;
        jornada = null;
        hora = null;
        valor = null;
        mostPanel = false;
        listamuestra = null;
        listaparametros = null;
        listafiscoQuimica = null;
        listafiscoQuimicaInsitu = null;
        tipoparametro = null;
    }

    public static void listaMuestraFisicoUsuario() {
        try {
            listafiscoQuimicaInsitu = MPMuestraFisicoQuimca.listarMuestrasfisicoquimicasInsituUsu(auxiliar);
            listafiscoQuimicaLaboratorio = MPMuestraFisicoQuimca.listarMuestrasfisicoquimicasLaboratorioUsu(auxiliar);
            listafiscoQuimicaMicrobiologicos = MPMuestraFisicoQuimca.listarMuestrasfisicoquimicasMicrobiologicosUsu(auxiliar);
        } catch (SQLException ex) {
            Logger.getLogger(controlMuestraFisicoQuimica.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(controlMuestraFisicoQuimica.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public static void listaMuestraFisicoPuntoUsuario(String codpunto, String codplaya) {
        try {
            listafiscoQuimicaInsitu = MPMuestraFisicoQuimca.listarMuestrasfisicoquimicasInsitupuntoUsu(codpunto, codplaya, auxiliar);
            listafiscoQuimicaLaboratorio = MPMuestraFisicoQuimca.listarMuestrasfisicoquimicasLaboratoriopuntoUsu(codpunto, codplaya, auxiliar);
            listafiscoQuimicaMicrobiologicos = MPMuestraFisicoQuimca.listarMuestrasfisicoquimicasMicrobiologicospuntoUsu(codpunto, codplaya, auxiliar);
            puntomuestreo = codpunto;
        } catch (SQLException ex) {
            Logger.getLogger(controlMuestraFisicoQuimica.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(controlMuestraFisicoQuimica.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void listResultadomuestraparametrostrosins(ValueChangeEvent event) throws SQLException, Exception {
        StringTokenizer form = new StringTokenizer(event.getNewValue().toString(), "-");
        String cop = form.nextToken();
        if (event.getNewValue() != null) {
            try {
                String fecha1 = formato.format(fecha);
                setListamuestra(MPMuestraFisicoQuimca.getMuestraFisicoQuimicaAuxiliarparametropuntomuestreo(fecha1, auxiliar, cop, puntomuestreo, tipoparametro));
                //  System.out.println(getCategoria().getNombre()event.getNewValue().toString());
            } catch (SQLException ex) {
                ex.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }

    public static void Listartablas(String tipo) {

        try {
            String fecha1 = formato.format(fecha);
            setListamuestra(MPMuestraFisicoQuimca.getMuestraFisicoQuimicaAuxiliarparametropuntomuestreo(fecha1, auxiliar, "01", puntomuestreo, tipo));
            tipo = tipoparametro;




        } catch (SQLException ex) {
            Logger.getLogger(controlMuestraFisicoQuimica.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(controlMuestraFisicoQuimica.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public List getListaparametroscomboinsitu() {
        List resultList = new ArrayList();
        for (Iterator<Parametro> it = listaparametrosinsitu.iterator(); it.hasNext();) {
            Parametro listParametro = (Parametro) it.next();
            SelectItem item = new SelectItem(listParametro.getCodigo() + "-" + listParametro.getDescripcion());;

            resultList.add(item);

        }
        return resultList;
    }

    public void mostrarPanel() throws SQLException, Exception {
        //setListaparametros(MPParametro.listarParametros() );
        setMostPanel(true);

    }

    public static void setListaparametros(List<Parametro> aListaparametros) {
        listaparametros = aListaparametros;
    }

    public List<RmuestraFisicoQuimicas> getListamuestra() {
        
        return listamuestra;
    }

    public static void setListamuestra(List<RmuestraFisicoQuimicas> aListamuestra) {
        listamuestra = aListamuestra;
    }

    public static void ListarParametrosc(String tipo) throws SQLException, Exception {

        listaparametrosinsitu = MPParametro.listarParametrostiposinsitu(tipo);


    }

    public void agregarInsitu() throws SQLException, Exception {
        String fechamuestra = formato.format(fecha);
        String hora2 = formatohora.format(hora1);
        StringTokenizer form = new StringTokenizer(parametros, "-");
        String cop = form.nextToken();
        MuestraFisicoQuimica mutrafq = new MuestraFisicoQuimica();
        mutrafq.setAuxiliar(MPAuxiliar.getAuxiliar(auxiliar));
        mutrafq.setRepeticion(repeticion);
        mutrafq.setJornada(jornada);
        mutrafq.setHora(hora2);
        mutrafq.setValor(Double.parseDouble(valor));
        mutrafq.setFechainicial(fechamuestra);
        mutrafq.setParametros(MPParametro.getParametro(cop));
        mutrafq.setPuntomuestreo(MPPuntoMuestreo.getPuntoMuestreo(puntomuestreo));
        MPMuestraFisicoQuimca.crearMuestraDensidad(mutrafq);
        Limpiar();
        System.out.print(fechamuestra);
    }

    public void Limpiar() {
        hora1 = new Date();
        fecha = new Date();
        repeticion = null;
        parametros = "";
        jornada = null;
        valor = null;
    }

    public void ocultarPanel() {
        setMostPanel(false);

    }

    public static String getAuxiliar() {
        return auxiliar;
    }

    public static void setAuxiliar(String auxiliar) {
        auxiliar = auxiliar;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public List<MuestraFisicoQuimica> getListafiscoQuimica() {
        return listafiscoQuimica;
    }

    public static void setListafiscoQuimica(List<MuestraFisicoQuimica> listafiscoQuimica) {
        setListafiscoQuimica(listafiscoQuimica);
    }

    public static void listartablasmuestras() {
        /*try {
        ListafiscoQuimica=MPMuestraFisicoQuimca.listarMuestrasfisicoquimicasInsitupuntoUsu(auxiliar)s("2", auxiliar, "30/11/2011", "in Situ", "01");
        } catch (SQLException ex) {
        Logger.getLogger(controlMuestraFisicoQuimica.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
        Logger.getLogger(controlMuestraFisicoQuimica.class.getName()).log(Level.SEVERE, null, ex);
        }*/
    }

    public static List<Parametro> getListaparametros() {
        return listaparametros;
    }

    public boolean isMostPanel() {
        return mostPanel;
    }

    public void setMostPanel(boolean mostPanel) {
        this.mostPanel = mostPanel;
    }

    public String getParametros() {
        return parametros;
    }

    public void setParametros(String parametros) {
        this.parametros = parametros;
    }

    public String getPuntomuestreo() {
        return puntomuestreo;
    }

    public static void setPuntomuestreo(String puntomuestreo) {
        puntomuestreo = puntomuestreo;
    }

    public String getRepeticion() {
        return repeticion;
    }

    public void setRepeticion(String repeticion) {
        this.repeticion = repeticion;
    }

    public static String getTipomuestra() {
        return tipomuestra;
    }

    public static void setTipomuestra(String tipomuestra) {
        controlMuestraFisicoQuimica.tipomuestra = tipomuestra;
    }

    public String getJornada() {
        return jornada;
    }

    public void setJornada(String jornada) {
        this.jornada = jornada;
    }

    public String getHora() {
        return hora;
    }

    public void setHora(String hora) {
        this.hora = hora;
    }

    public String getValor() {
        return valor;
    }

    public void setValor(String valor) {
        this.valor = valor;
    }

    public MuestraFisicoQuimica getSelecmuestra() {
        return selecmuestra;
    }

    public void setSelecmuestra(MuestraFisicoQuimica selecmuestra) {
        this.selecmuestra = selecmuestra;
    }

    public Date getHora1() {
        return hora1;
    }

    public void setHora1(Date hora1) {
        this.hora1 = hora1;
    }

    /**
     * @return the listafiscoQuimicaInsitu
     */
    public List<MuestraFisicoQuimica> getListafiscoQuimicaInsitu() {
        return listafiscoQuimicaInsitu;
    }

    /**
     * @param aListafiscoQuimicaInsitu the listafiscoQuimicaInsitu to set
     */
    public void setListafiscoQuimicaInsitu(List<MuestraFisicoQuimica> aListafiscoQuimicaInsitu) {
        listafiscoQuimicaInsitu = aListafiscoQuimicaInsitu;
    }

    /**
     * @return the listafiscoQuimicaLaboratorio
     */
    public List<MuestraFisicoQuimica> getListafiscoQuimicaLaboratorio() {
        return listafiscoQuimicaLaboratorio;
    }

    /**
     * @param aListafiscoQuimicaLaboratorio the listafiscoQuimicaLaboratorio to set
     */
    public static void setListafiscoQuimicaLaboratorio(List<MuestraFisicoQuimica> aListafiscoQuimicaLaboratorio) {
        listafiscoQuimicaLaboratorio = aListafiscoQuimicaLaboratorio;
    }

    /**
     * @return the listafiscoQuimicaMicrobiologicos
     */
    public List<MuestraFisicoQuimica> getListafiscoQuimicaMicrobiologicos() {
        return listafiscoQuimicaMicrobiologicos;
    }

    /**
     * @param aListafiscoQuimicaMicrobiologicos the listafiscoQuimicaMicrobiologicos to set
     */
    public static void setListafiscoQuimicaMicrobiologicos(List<MuestraFisicoQuimica> aListafiscoQuimicaMicrobiologicos) {
        listafiscoQuimicaMicrobiologicos = aListafiscoQuimicaMicrobiologicos;
    }

    /**
     * @return the listaparametrosinsitu
     */
    public List<Parametro> getListaparametrosinsitu() {
        return listaparametrosinsitu;
    }

    /**
     * @param aListaparametrosinsitu the listaparametrosinsitu to set
     */
    public static void setListaparametrosinsitu(List<Parametro> aListaparametrosinsitu) {
        listaparametrosinsitu = aListaparametrosinsitu;
    }
}
